home *** CD-ROM | disk | FTP | other *** search
/ 1,000+ Great Games / 1_1000 Games.iso / DOOM / DMRUNNER.ZIP / RUNNER.BAS < prev    next >
Encoding:
BASIC Source File  |  1995-09-10  |  6.4 KB  |  153 lines

  1. '
  2. 'PWAD runner source code, supplied with DMLDFLAY v1.5+
  3. '-----------------------------------------------------
  4. 'Originally coded by Paul Pollack/GamePlay Magazine/DragonHawk Productions
  5. 'You may use this source code without restrictions (with the one exception
  6. 'that you may NOT use it as a runner for PWAD's that work with the shareware
  7. 'version of Doom), although I cannot be held responsible for any damage that
  8. 'may result from use of your PWAD. I also ask that if you decide to use
  9. 'this as your PWAD runner, that you mention my name somewhere in the credits.
  10. '
  11. '
  12. DECLARE SUB intro ()
  13. DEFINT A-Z
  14. ' $INCLUDE: 'QB.BI'
  15. DECLARE SUB hidemouse ()
  16. DECLARE SUB SHOWMOUSE ()
  17. DECLARE SUB GETMOUSECORD (K%, K3%, M4%)
  18. DECLARE SUB STARTMOUSE ()
  19. DIM SHARED Inregs AS RegType, Outregs AS RegType
  20. OPEN "rundata.dat" FOR INPUT AS #1
  21. LINE INPUT #1, a$
  22. LINE INPUT #1, b$
  23. LINE INPUT #1, c$
  24. LINE INPUT #1, d$
  25. LINE INPUT #1, e$
  26. LINE INPUT #1, f$
  27. LINE INPUT #1, g$
  28. LINE INPUT #1, h$
  29. CLOSE
  30. CLS
  31. WIDTH 80, 50
  32. ' To successfully run this RUNNER, you need ANSI.SYS or an imitation
  33. ' ANSI driver; you may wish to include a freeware command line ANSI driver
  34. ' in your PWAD and include a line like the following one. (Note that
  35. ' it is commented out; please do not uncomment it unless you find a command
  36. ' line driver and change the line accordingly:
  37. ' SHELL "PCANSI"
  38. RANDOMIZE TIMER
  39. CLS
  40. SHELL "mode con lines=50"
  41. WIDTH 80, 50
  42. 317 N = INT(RND * 10)
  43. IF N = 0 OR N = 10 THEN 317
  44. IF N = 1 THEN SHELL "type DOOM01.DAT" 'Those ANSI files are pretty
  45. IF N = 2 THEN SHELL "type DOOM02.DAT" 'nifty, for ANSI.
  46. IF N = 3 THEN SHELL "type DOOM03.DAT"
  47. IF N = 4 THEN SHELL "type DOOM04.DAT"
  48. IF N = 5 THEN SHELL "type DOOM05.DAT"
  49. IF N = 6 THEN SHELL "type DOOM06.DAT"
  50. IF N = 7 THEN SHELL "type DOOM07.DAT"
  51. IF N = 8 THEN SHELL "type DOOM08.DAT"
  52. IF N = 9 THEN SHELL "type DOOM09.DAT"
  53. COLOR 15 'Change this depending on what color you like
  54. 13 Z = INT(RND)
  55. 14 IF Z > .5 THEN Z = 1 ELSE Z = 0
  56. LOCATE 7, INT(28.5 - .5 * (LEN(a$))) + Z: PRINT "CUSTOM PWAD RUNNER FOR " + a$'SELF-EXPLANATORY
  57. 320 WHILE INKEY$ = "": WEND
  58. CLS
  59. COLOR 15
  60. DEF SEG = &HB800
  61. 10 'All the way from this line 'till line 1231 Runner is setting up
  62. 'the screen
  63. J = INT(RND * 10)
  64. IF J = 0 OR J = 10 OR J = N THEN 10
  65. WIDTH 80, 50
  66. IF J = 1 THEN SHELL "type DOOM01.DAT" 'Those ANSI files are pretty
  67. IF J = 2 THEN SHELL "type DOOM02.DAT" 'nifty, for ANSI.
  68. IF J = 3 THEN SHELL "type DOOM03.DAT"
  69. IF J = 4 THEN SHELL "type DOOM04.DAT"
  70. IF J = 5 THEN SHELL "type DOOM05.DAT"
  71. IF J = 6 THEN SHELL "type DOOM06.DAT"
  72. IF J = 7 THEN SHELL "type DOOM07.DAT"
  73. IF J = 8 THEN SHELL "type DOOM08.DAT"
  74. IF J = 9 THEN SHELL "type DOOM09.DAT"
  75. 100
  76. LOCATE 13, 1
  77. FOR h = 1 TO 25
  78. FOR g = 1 TO 80: PRINT " "; : NEXT
  79. NEXT h
  80. STARTMOUSE: SHOWMOUSE
  81. LOCATE 13, 1
  82. SHELL "TYPE runner.dat"
  83. LOCATE 22, 43: IF b = 0 THEN PRINT " OFF" ELSE PRINT "  ON"
  84. LOCATE 24, 1
  85. LOCATE 36, 26
  86. COLOR 10 'REPLACE THIS WITH THE COLOR YOU WOULD LIKE
  87. LOCATE 16, INT(40 - .5 * (LEN(b$))): PRINT b$
  88. COLOR 9 'REPLACE THIS WITH THE COLOR YOU WOULD LIKE
  89. LOCATE 17, INT(40 - .5 * (LEN(c$))): PRINT c$
  90. COLOR 15 'REPLACE THIS WITH THE COLOR YOU WOULD LIKE
  91. LOCATE 24, INT(40 - .5 * (LEN(d$))): PRINT d$
  92. LOCATE 13, 1
  93. SHELL "TYPE RUNNER.DAT"
  94. 1231
  95. LOCATE 36, 26
  96. COLOR 1
  97. PRINT CHR$(177);
  98. COLOR 15
  99. LOCATE 36, 28
  100. PRINT "CLICK ON YOUR CHOICE"
  101. DO
  102. GETMOUSECORD K, x, Y
  103. 'LOCATE 1, 1: PRINT K, x, Y
  104. 'Nifty place for a comment, eh? This is the heart of RUNNER, where
  105. 'it actually loads the PWAD
  106. IF Y = 26 AND x < 59 AND x > 18 AND K = 1 THEN a = 1
  107. IF Y = 27 AND x < 58 AND x > 19 AND K = 1 THEN a = 2
  108. IF Y = 28 AND x < 58 AND x > 18 AND K = 1 THEN a = 3
  109. IF Y = 29 AND x < 58 AND x > 18 AND K = 1 THEN a = 4
  110. IF Y = 30 AND x < 56 AND x > 20 AND K = 1 THEN a = 5
  111. IF Y = 31 AND x < 55 AND x > 22 AND K = 1 THEN a = 6
  112. IF Y = 32 AND x < 61 AND x > 16 AND K = 1 THEN a = 7
  113. COLOR 9
  114. IF a = 1 OR a = 2 OR a = 3 OR a = 4 OR a = 5 THEN WIDTH 80, 25
  115. IF a = 1 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 1 -nomonsters -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: END: a = 7: GOTO 12
  116. IF a = 2 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 1 -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  117. IF a = 3 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 2 -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  118. IF a = 4 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 4 -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  119. IF a = 5 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 6 -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  120. IF a = 1 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 1 -respawn -nomonsters -warp " + h$: PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  121. IF a = 2 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 1 -respawn -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  122. IF a = 3 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 2 -respawn -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  123. IF a = 4 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 4 -respawn -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  124. IF a = 5 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 6 -respawn -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
  125. IF a = 6 THEN b = -b + 1: a = 0: GOTO 100
  126. 12 IF a = 7 THEN CLS : WHILE INKEY$ <> "": WEND: SCREEN 9: SCREEN 0: SYSTEM
  127. LOOP: hidemouse
  128.  
  129. SUB GETMOUSECORD (K%, M3%, M4%)
  130. Inregs.ax% = 3
  131. CALL INTERRUPT(&H33, Inregs, Outregs)
  132. M3% = Outregs.cx% / 8
  133. M4% = (Outregs.dx% + 1) / 8
  134. K% = Outregs.bx%
  135. END SUB
  136.  
  137. SUB hidemouse
  138. Inregs.ax% = 2
  139. CALL INTERRUPT(&H33, Inregs, Outregs)
  140. END SUB
  141.  
  142. SUB SHOWMOUSE
  143. Inregs.ax% = 1
  144. CALL INTERRUPT(&H33, Inregs, Outregs)
  145. END SUB
  146.  
  147. SUB STARTMOUSE
  148. Inregs.ax% = 0
  149. CALL INTERRUPT(&H33, Inregs, Outregs)
  150. MouseInitialize% = Outregs.ax%
  151. END SUB
  152.  
  153.